# 1. 求数组中的最大数
nums = [1,2,3]
maxnum = 0
for i in range(0,len(nums)):
    if maxnum < nums[i]:
        maxnum = nums[i]
    else:continue
print(maxnum)

# 2. 1+2+3+...+n
n = input("计算1~n的和，请输入n的值：")
sum = 0
for i in range(1,n+1):
    sum += i
print(sum)
# 3. 求n个整数的积
n_list = []
while True:
    n = input("请输入整数值：")
    if n == 'quit':
        break
    else:
        n_list.append(n)
multiply = 1
for i in n_list:
    multiply *= i
print(multiply)

# 4. 求n个整数的平均值
n_list = []
while True:
    n = input("请输入整数值：")
    if n == 'quit':
        break
    else:
        n_list.append(n)
multiply = 0
for i in n_list:
    multiply += i
print(multiply/n)

# 5. 求n个自然数的最大公约数与最小公倍数


def hcf(a, b):
    """该函数返回两个数的最大公约数 highest common factor"""

    if a < b:
        a, b = b, a

    while b != 0:
        temp = a % b
        a = b
        b = temp

    return a
# lowest common multiple 最小公倍数

list = []

while True:

    num = input("输入一个数字: ")
    if num == 'q':
        break
    else:
        list.append(int(num))
cc = list[0]
print(list)
for i in range(1,len(list)):
    if  list[i] != list[-1]:
        cc = hcf(cc,list[i])
    else:
        print("最大公约数{}".format(cc))
mul = 1
for i in range(1,len(list)):
    if list[i] != list[-1]:
        cc = hcf(cc,list[i])
        print(hcf)
    else:
        for i in list:
            mul *= i

print("最小公倍数{}".format(mul / cc))


# 6. 有一对雌雄兔，每两个月就繁殖雌雄各一对兔子.问n个月后共有多少对兔子
# 一对兔子，从出生后第3个月起每个月都生一对兔子。
# 小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死，
# 请问第1个月出生的一对兔子，至少需要繁衍到第几个月时兔子总数才可以达到N对？
nums= [2,2,2,4]
n = int(input("输入几个月后："))
if n <= 3 :
    print("{}个月后有{}对兔子".format(n,nums[n-1]))
elif n > 3 :
    for i in range(4,n+1):
        num = nums[i-1] + nums[i-2]
        nums.append(num)
    print("{}个月后有{}对兔子".format(n,nums[n-1]))



# 7. 已知：数列1,1,2,4,7,13,24,44,...求数列的第 n项.
nums = [1,1,2,4]
n =int(input("你想求数列的第几项"))
if n == 1 :
    print("值为1")
elif n == 2 :
    print("值为1")
elif n == 3 :
    print("值为2")
elif n >= 4 :
    for i in range(4,n):
        s = nums[i-1] +nums[i-2] + nums[i-3]
        nums.append(s)
print(nums[n-1])